package com.wmx.hb.fastmybatis.mapper;

import com.gitee.fastmybatis.core.mapper.CrudMapper;
import com.wmx.hb.fastmybatis.pojo.BasPersonInfo;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * 使用 fastmybatis 操作。
 * 1、继承具备CRUD的 CrudMapper，这样接口就自带了通用的 crud 方法。
 *
 * @author wangMaoXiong
 * @version 1.0
 * @date 2022/12/7 20:13
 */
public interface PersonMapper extends CrudMapper<BasPersonInfo, Integer> {

    /**
     * 根据员工名称模糊查询
     * 1、<script> 标签：表示内容里面可以使用原生的 Mybatis 标签及其语法。
     * 2、使用此标签之后，可以将 xml 映射文件中的内容原封不动的拷贝过来即可使用。
     * 3、如下所示，如果 ename 不为空，则拼接 like 条件，否则拼接 1=2 .
     *
     * @param ename
     * @return
     */
    @Select(value = {"<script>select * from bas_person_info <where> <choose> <when test=\"ename !=null and ename !=''\">ename like concat('%',concat(#{ename},'%'))</when><otherwise>1=2</otherwise></choose> </where></script>"})
    List<BasPersonInfo> loadByName(@Param("ename") String ename);

}
